package view;

import java.awt.Component;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Observable;
import java.util.Observer;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;

import model.Lieferungsliste;
import model.Zulieferung;

public class ZeigeLieferungenPanel extends JPanel implements Observer {

	JPanel tabPanel = new JPanel();
	private Object[][] buchungsDaten;
	private Lieferungsliste lieferungsliste;
	JTable tabelle;
	String[] spaltennamen;

	public ZeigeLieferungenPanel(Object[][] daten, String[] spaltenNamen,
			Lieferungsliste lieferungsliste) {
		this.spaltennamen = spaltennamen;
		createTable(buLi2BuAr(lieferungsliste), spaltenNamen, lieferungsliste);
		add(tabPanel);

		this.lieferungsliste = lieferungsliste;
		lieferungsliste.addObserver(this);

	}

	private Object[][] buLi2BuAr(Lieferungsliste lieferungsliste) {
		SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
		
		buchungsDaten = new Object[lieferungsliste.getZulieferungsliste()
				.size()][2];
		for (int i = 0; i < lieferungsliste.getZulieferungsliste().size(); i++) {
			buchungsDaten[i][0] = sdf.format(lieferungsliste.getZulieferungsliste().get(i)
					.getDatum());
			buchungsDaten[i][1] = lieferungsliste.getZulieferungsliste().get(i)
					.getAnzahl();
		}
		return buchungsDaten;
	}

	private void createTable(Object[][] daten, String[] spaltenNamen,
			Lieferungsliste lieferungsliste) {

		tabelle = new JTable(new DefaultTableModel(daten, spaltenNamen)) {
			public boolean isCellEditable(int x, int y) {
				return false;
			}
		};
		tabelle.getTableHeader().setReorderingAllowed(false);
		tabelle.getTableHeader().setResizingAllowed(false);
		tabPanel.add(new JScrollPane(tabelle));

	}

	public JTable getTabelle() {
		return tabelle;
	}

	public void setTabelle(JTable tabelle) {
		this.tabelle = tabelle;
	}



	@Override
	public void update(Observable arg0, Object arg1) {
		String[] spaltennamen = { "Datum", "Menge" };
		DefaultTableModel model = (DefaultTableModel) tabelle.getModel();
		model.setDataVector(buLi2BuAr(lieferungsliste), spaltennamen);
		model.fireTableDataChanged();

	}

}
